package main

import "fmt"

// 函数一般使用 slice 而不是数组作为参数。

// 数组的长度也是数组类型的一部分
// terraform accomplishes nothing
func terraform(planets [8]string) {
	for i := range planets {
		planets[i] = "New " + planets[i]
	}
}

// 数组也是一种值，函数通过值传递来接受参数。所以数组作为函数的参数就非常低效
// 无论数组赋值给新的变量还是将它传递给函数，都会产生一个完整的数组副本
func main() {
	planets := [...]string{
		"Mercury",
		"Venus",
		"Earth",
		"Mars",
		"Jupiter",
		"Saturn",
		"Uranus",
		"Neptune",
	}

	terraform(planets)
	fmt.Println(planets) // [Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune]
}
